perm filename RNOTES[LSP,JRA]5 blob sn#108266 filedate 1974-06-26 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	more on undefined and scott's logic
C00016 ENDMK
C⊗;
more on undefined and scott's logic

ADD CONTINUATIONS..

TRY FOR || BETWEEN OLD EVAL, NEW EVAL GENERIC AND ACTORS

in section of λ-notation:  note that <= is NOT assignment
for  fact <= λ[[x][ ... T→*[x,fact[x-1]]] would say use fact on RHS
in assigning  to LHS, and THAT IS WRONG! <= is fixed point.
c.f.  x ← -(2x+1)/x and x = -(2x+1)/x. first has value dependent on current value
of x. second has SOLUTION of x=1. so to with fact above; it has solution, but
here solution is a function rather than a simple value.
introduce through example:
	g←λy.y+1
	f←λx.g[x]
	whats f[2]
	g←λy.y-1
	what's f[2]
1. if doesn't change, then try fact.lose.
2. if does change lose closures.

Quam's suggestions:
1. re tracing and debugging: hack similar ro value cells where sube/fsubr link is
immovable and we pushj through it.

2. more hhs on bignums

what the fuck does abstract data structure mean.
perhaps consider following: definition of lists in LISP wrt to
UR of dp's. input: recog (a b); output: how to print; reognizer: islist;
how to generate; how to select: n(th); 1-4 via SDIO; 1-2 external; 3-5 internal.


look at old 7090 lisp compr

add abstract compiler

		*note in sdio and in debugging sdio's importance for debugging
		*you can read it!!

		*another reason for removing go to and label. when writing a smart compiler
		*much can be saved by remembering what is where(in which ac's] note
		*how much of lisp complier is getting registers set up.
		*code at label can be approached from any go to. so we must try
		*to remember whether every approach has same setting of reg; only then can we
		*optimize; give example; remove go to and label and problem goes away.


DEEP BINDING COMPILER !!!!! AND PROOF A'LA LONDON
    NOTE THAT DEEP BIN COMP HAS NAMES ON STACK SHALL DOESN'T..BUT CAN BE FIXED
    GOOD FOR DEBUGGING

NOTE FUNCTION WILL COMPILE CODE USUSALLY WHEREAS QUOTE WON'T.

		*ABSTRACT EVAL AND CO  SHOWING FUNARG AS PER WEIZENBAUM

		**arg about deep binding and searching stack: loop is expensive ; 
		**therefore another reason to keep iteration in language and away from programmer
		**(i.e. no go to's) since then  can be "smart" about access....should be
		**able to do something about  "fast memory" in such case

arg two: bobrow's claim that functon names are global; if i reassign defintion
for function, say "car" it is local in strongest sense rather than global.

add syntax of progs

		*somewhere...we shall be interested in ideas not coding tricks

section on types of binding perhaps: value, ref, uneval , name, ...AND BINDING
  BY PATTERN: PDI

bruce's comments
		*1. say what "undefined" means in implementation
		*    should ref implementation when undefined is first mentioned, but put later
		**2. separation of rep from algorithm
3. doesn't like special forms.. justify
4. more examples of func. args.  show lossage on closure.
		*5. doesn't like shallow binding and func. args.
6. circularity and d.scott
		*7. handling of calling w.o. ac's i.e. 1.5 imp
8. non-trivial for g.c. to search bps....true
9. wants hacks in bbn lisp exposed
10. suggest some kind of indirection for callin function args..prob poor
11. doesn't believe bit map necessary for more complex data structure marking.
12. moron dope vector

check basel on free vars in procedure assignments

		*check if we have noted that outlawing globals woulf f.u. function names
		*(which ARE  globals)

		*add  handling of funargs with shallow binder in binding revisited.

		*add selectq as a prob compare to case statement

		* on function v.s. form cf. λ[]x+y  vs x+y
ON CLOSED VS OPEN

		*ALTERNATIVE CALLING IN STACK RATHER THAN AC'S

		**note on SM-eval: if car of form is not atomic then it is assumed to be
		**reducible to a function (NOT fexpr) i.e. it evals arg. tsk,tsk.
		**related problem: can eval and co. be changed to not be so precipitous about
		**evaluating args.
		**then there's the nlambda horse shit....

hlisp eval with types

		**but in explicit discussion of functions: fixed # of args in definition and call
		**in fact  in section showing equal[A;A] or what ever

		**probelm:  predecessor 

		**explicit thaat f[a1; ...an] is apply[F a1' ....an'; st of a	ll called non prim funcst]

should show explicitly stack picture of returns on stack
do in parallel with coutour...i.e. in columns

		*(LAMBDA(LAMBDA) ...) AFTER NEW SYM TAB 
		*OR  prog[x;y]    ......x← y;    x:      ....go [x]
		*either of above for multiplcity of props.

NEED SECTION ON READ HACKERY...INTERN READLIST  EXPLODE

		*EXTENSIVE SECTIONS ON BINDING SHALLOW DEEP HACKERY

EXTENSIONS OF LISP A LA PLANNER DATA BASES PATT MATCH..
PATTERN DIRECTED INNVOC

		*WEIZENBAUM ON CONTROL BOBROW-WEG

MAPPING OF CONTOUR TO STACK MODEL

MACHINES 

		*QUAMS SDIO MLISP2  H.S.


how about multiple values reutrnrd s.t. function with mult args can get

shoW eval doesn't have to search oblist to find atom..done by read

		**MOVE FEXPR-MACRO SECTION TO AREA OF SM-EVAL

		**PROBLEM OF DIRECT REVERS W.O. APPEND

		add function-form distinction in λ-expr section
		
		put cross ref to form where bnf is described  for form

		COMMENT: ADD BOYER-MOORE TO PROOF SECTION, AND BIBLIO

PROBLEM IN 3.9 VALUE IN SYMTAB

		IN MACRO: WHY BETTER THAN SUBR...MORE EFFICIENT OPEN CODED BUT CAN
		BE INTUITIVE NOTATION...CF POLY EXAMPLE

		**PROBLEM IN DIFF SECTION : EXTEND TO N-ARY OPS

COMMENT: SAY "IF ARGS ARE ATOMIC..." WE REALLY MEAN "IF VALUE OF ARGS IS ATOMIC...."

		**COMMENT CAR CDR ARE SELECTORS; CONS IS CONSTRUCTOR

PROBLEM: GIVE CAR-CDR TO FIND ATOM IN..


		IN INT NOTES IN 4 SECTIONS: LANG,EVAL,IMP,COMP

ADD FANCY DIFFERENTIATION AFTTER FUN ARGS

		**ADD J. MORRIS EXAMPLE IN PROBLEMS CONCERNING COND AND ORDER
		OF EVAL

		**in list section: cons[x list] (x,    )

		add bumpfh about relative spped and space of compilation .: why not
		compile.. debugging editing...etc.

add problems on efficient compilation,using open car and cdr

		**get going on bibliography

		**ADD PROB OF EVAL FOR CALL BY NAME

IMPLICATIONS OF LISP TO OTHER LANGUAGES  COMPILING BETTER SINCE
MUCH KNOWN AT COMPILE TIME ETC. PARISNG  ETC

		**bootstrapping for chrissakes!!!!!

		**add problem in applic. of rpacac  for ratom

		**reference counters

		**crap on committee effect

notes on c e quote from test

		**define FEXPR, SUBR, EXPR FSUBR 

		*PICTURES .STRUCTURE OF FACT
		*	OBLIST
		*	NIL
		*	BIN AND UNBIND
		*	AMBIT GC
		* 	AMBIT PRIMITIVES

		**tiltle super lisp to be published by mung,manure and sun, the organic pub  co.

		**explain NIl vs evwrything else in cestrin on implemenasion--where eq x;x is given

		** problem for rplacd: rplacd x;cdr x is?

		**PROB INPROGS: EXTEND EVAL TO PROG

		**prob in progs extensions a la muddle conniver
		initialization of aux; optional, tuple eval unevaled args
		check if micro-plnr allows initialized aux.

		**much more on lambdda and internal lambdas and uses.

		**add arrays

fart with funarg and functional args: weizenbaum
INCLUDE MULTIPLE OBLISTS HERE ON S.T. DISCUSSION
note collision problem of say compiler loacals with user thus muli sym.

		**add BNF for functions near front

		**add fexpr-fsubr discussion in new eval and into discussion of how to compile

		**MORE ON NUMBERS IN FIRST SECTION

		**ADD VALUE CELL DEPRESSION, PNAME TOO

		*add LISP version of gc a la exam to secion on AMBIT

		**add calling conventions to simple pdp-10 section 6.12

more examples on machine

		**equivalence of length reverse append

		**need to add full assembler somewhere

		**add problem of Jorge: function bringing back dotted pair of
		**info found in arbit. tree.

		**hs. on semantics added to front of  compilation hs.

		**table driven scanner and parser **table driven in progs


		**and and or into compiler?

		**add E to description of assemble

		**add C as well

		**ADD SKETCH OF COMPILATION OF F = J G(X)H(Y) 

		**multiple car-cdrs and lists 1st.2nd etc

		**hash consing

errset, catch and throw

multiple oblists

		**read muddle manual again

readlist intern

i/o channels

bbn lisp editor and debugger